Supporting layers in the X11R5 and previous MIT release of X was difficult because the the Device Independent X (DIX) code in the server implicitly assumes that all windows reside in the same layer. For overlays, this assumption is not true. The code to do window tree validation inside the X server is complicated by layers. With X11R6 you can look forward to the proper hooks existing in DIX to support layers without vendor modification to the DIX layer.